package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.ZjAdmOrderTableField;
import com.zb.entity.dto.OrderTableFieldDto;
import com.zb.search.SearchDto;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 后台工单列表表头字段表 服务类
 * </p>
 *
 * @author WEN
 * @since 2024-01-24
 */
public interface ZjAdmOrderTableFieldService extends IService<ZjAdmOrderTableField> {

    /**
     * 保存或修改工单表头字段
     * @param fieldDto
     */
    void save(OrderTableFieldDto fieldDto);

    /**
     * 获取表头字段列表
     * @param search 搜索对象
     * @return
     */
    Map<String, Object> getList(SearchDto search);

    /**
     * 根据表头ID获取详情
     * @param id 表头字段ID
     * @return
     */
    OrderTableFieldDto getDetail(Long id);

    /**
     * 批量修改列隐藏或显示
     * @param showColumn 是否显示列：false-隐藏，true-显示
     * @param ids 表头字段ID
     */
    void updateShowCloumBatchById(boolean showColumn, List<Long> ids);

    /**
     * 批量修改列冻结或解冻
     * @param freezeColumn 是否冻结列：false-解冻，true-冻结
     * @param ids 表头字段ID
     */
    void updateFreezeCloumBatchById(boolean freezeColumn, List<Long> ids);

    /**
     * 批量启用或禁用表头字段
     * @param status 表头字段状态：false-启用，true-禁用
     * @param ids 表头字段ID
     */
    void updateDisabledBatchById(boolean status, List<Long> ids);
}
